TPTP Problem File: DAT179^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : DAT179^1 : TPTP v8.2.0. Released v7.0.0.
% Domain   : Data Structures
% Problem  : Lazy lists II 596
% Version  : [Bla16] axioms : Especial.
% English  :

% Refs     : [Fri04] Friedrich (2004), Lazy Lists II
%          : [RB15]  Reynolds & Blanchette (2015), A Decision Procedure for
%          : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source   : [Bla16]
% Names    : llist2__596.p [Bla16]

% Status   : Theorem
% Rating   : 0.67 v8.1.0, 0.50 v7.5.0, 0.33 v7.2.0, 0.25 v7.1.0
% Syntax   : Number of formulae    :  360 ( 141 unt;  66 typ;   0 def)
%            Number of atoms       :  701 ( 292 equ;   0 cnn)
%            Maximal formula atoms :   13 (   2 avg)
%            Number of connectives : 2979 (  69   ~;  11   |;  36   &;2544   @)
%                                         (   0 <=>; 319  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   19 (   6 avg)
%            Number of types       :    5 (   4 usr)
%            Number of type conns  :  219 ( 219   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   65 (  62 usr;   7 con; 0-5 aty)
%            Number of variables   :  866 (  29   ^; 760   !;  21   ?; 866   :)
%                                         (  56  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2016-07-13 14:47:34.314
%------------------------------------------------------------------------------
%----Could-be-implicit typings (8)
thf(ty_t_Coinductive__List_Ollist,type,
    coinductive_llist: $tType > $tType ).

thf(ty_t_Option_Ooption,type,
    option: $tType > $tType ).

thf(ty_t_Set_Oset,type,
    set: $tType > $tType ).

thf(ty_t_Num_Onum,type,
    num: $tType ).

thf(ty_t_Nat_Onat,type,
    nat: $tType ).

thf(ty_t_Int_Oint,type,
    int: $tType ).

thf(ty_t_itself,type,
    itself: $tType > $tType ).

thf(ty_tf_a,type,
    a: $tType ).

%----Explicit typings (58)
thf(sy_cl_HOL_Otype,type,
    type: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Oord,type,
    ord: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Oorder,type,
    order: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Osemiring__1,type,
    semiring_1: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Olinorder,type,
    linorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Opreorder,type,
    preorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Nat_Osemiring__char__0,type,
    semiring_char_0: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__semidom,type,
    linordered_semidom: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Olinordered__ab__group__add,type,
    linord219039673up_add: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Archimedean__Field_Ofloor__ceiling,type,
    archim1727834104eiling: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Complete__Lattices_Ocomplete__lattice,type,
    comple187826305attice: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Archimedean__Field_Oarchimedean__field,type,
    archim1804426504_field: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Ocanonically__ordered__monoid__add,type,
    canoni770627133id_add: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Oordered__ab__semigroup__add__imp__le,type,
    ordere236663937imp_le: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Oordered__ab__semigroup__monoid__add__imp__le,type,
    ordere516151231imp_le: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_c_Archimedean__Field_Oround,type,
    archimedean_round: 
      !>[A: $tType] : ( A > int ) ).

thf(sy_c_Coinductive__List_Ollist_OLNil,type,
    coinductive_LNil: 
      !>[A: $tType] : ( coinductive_llist @ A ) ).

thf(sy_c_Groups_Oplus__class_Oplus,type,
    plus_plus: 
      !>[A: $tType] : ( A > A > A ) ).

thf(sy_c_Groups_Ozero__class_Ozero,type,
    zero_zero: 
      !>[A: $tType] : A ).

thf(sy_c_Hilbert__Choice_OGreatestM,type,
    hilbert_GreatestM: 
      !>[A: $tType,B: $tType] : ( ( A > B ) > ( A > $o ) > A ) ).

thf(sy_c_Hilbert__Choice_OLeastM,type,
    hilbert_LeastM: 
      !>[A: $tType,B: $tType] : ( ( A > B ) > ( A > $o ) > A ) ).

thf(sy_c_If,type,
    if: 
      !>[A: $tType] : ( $o > A > A > A ) ).

thf(sy_c_Int_Onat,type,
    nat2: int > nat ).

thf(sy_c_LList2__Mirabelle__hamjzmohle_Oalllsts,type,
    lList2435255213lllsts: 
      !>[A: $tType] : ( ( set @ A ) > ( set @ ( coinductive_llist @ A ) ) ) ).

thf(sy_c_LList2__Mirabelle__hamjzmohle_Ofpslsts,type,
    lList22096119349pslsts: 
      !>[A: $tType] : ( ( set @ A ) > ( set @ ( coinductive_llist @ A ) ) ) ).

thf(sy_c_LList2__Mirabelle__hamjzmohle_Oinflsts,type,
    lList21612149805nflsts: 
      !>[A: $tType] : ( ( set @ A ) > ( set @ ( coinductive_llist @ A ) ) ) ).

thf(sy_c_LList2__Mirabelle__hamjzmohle_Olbutlast,type,
    lList2370560421utlast: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_LList2__Mirabelle__hamjzmohle_Oll2f,type,
    lList2228235758e_ll2f: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > nat > ( option @ A ) ) ).

thf(sy_c_LList2__Mirabelle__hamjzmohle_Ollength,type,
    lList21232602520length: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > nat ) ).

thf(sy_c_LList2__Mirabelle__hamjzmohle_Oltake,type,
    lList22119844313_ltake: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > nat > ( coinductive_llist @ A ) ) ).

thf(sy_c_LList2__Mirabelle__hamjzmohle_Oposlsts,type,
    lList21148268032oslsts: 
      !>[A: $tType] : ( ( set @ A ) > ( set @ ( coinductive_llist @ A ) ) ) ).

thf(sy_c_Nat_OSuc,type,
    suc: nat > nat ).

thf(sy_c_Nat_Osemiring__1__class_Oof__nat,type,
    semiring_1_of_nat: 
      !>[A: $tType] : ( nat > A ) ).

thf(sy_c_Nat_Osemiring__1__class_Oof__nat__aux,type,
    semiri532925092at_aux: 
      !>[A: $tType] : ( ( A > A ) > nat > A > A ) ).

thf(sy_c_Nat_Osize__class_Osize,type,
    size_size: 
      !>[A: $tType] : ( A > nat ) ).

thf(sy_c_Nat__Transfer_Otransfer__morphism,type,
    nat_tr1645093318rphism: 
      !>[B: $tType,A: $tType] : ( ( B > A ) > ( B > $o ) > $o ) ).

thf(sy_c_Nat__Transfer_Otsub,type,
    nat_tsub: int > int > int ).

thf(sy_c_Num_Onumeral__class_Onumeral,type,
    numeral_numeral: 
      !>[A: $tType] : ( num > A ) ).

thf(sy_c_Option_Obind,type,
    bind: 
      !>[A: $tType,B: $tType] : ( ( option @ A ) > ( A > ( option @ B ) ) > ( option @ B ) ) ).

thf(sy_c_Option_Ocombine__options,type,
    combine_options: 
      !>[A: $tType] : ( ( A > A > A ) > ( option @ A ) > ( option @ A ) > ( option @ A ) ) ).

thf(sy_c_Option_Ois__none,type,
    is_none: 
      !>[A: $tType] : ( ( option @ A ) > $o ) ).

thf(sy_c_Option_Ooption_ONone,type,
    none: 
      !>[A: $tType] : ( option @ A ) ).

thf(sy_c_Option_Ooption_OSome,type,
    some: 
      !>[A: $tType] : ( A > ( option @ A ) ) ).

thf(sy_c_Option_Ooption_Ocase__option,type,
    case_option: 
      !>[B: $tType,A: $tType] : ( B > ( A > B ) > ( option @ A ) > B ) ).

thf(sy_c_Option_Ooption_Opred__option,type,
    pred_option: 
      !>[A: $tType] : ( ( A > $o ) > ( option @ A ) > $o ) ).

thf(sy_c_Option_Ooption_Orec__option,type,
    rec_option: 
      !>[C: $tType,A: $tType] : ( C > ( A > C ) > ( option @ A ) > C ) ).

thf(sy_c_Option_Ooption_Oset__option,type,
    set_option: 
      !>[A: $tType] : ( ( option @ A ) > ( set @ A ) ) ).

thf(sy_c_Option_Ooption_Osize__option,type,
    size_option: 
      !>[A: $tType] : ( ( A > nat ) > ( option @ A ) > nat ) ).

thf(sy_c_Option_Ooption_Othe,type,
    the: 
      !>[A: $tType] : ( ( option @ A ) > A ) ).

thf(sy_c_Orderings_Oord__class_Oless__eq,type,
    ord_less_eq: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Pure_Otype,type,
    type2: 
      !>[A: $tType] : ( itself @ A ) ).

thf(sy_c_Set_OCollect,type,
    collect: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).

thf(sy_c_member,type,
    member: 
      !>[A: $tType] : ( A > ( set @ A ) > $o ) ).

thf(sy_v_Q,type,
    q: $o ).

thf(sy_v_i,type,
    i: nat ).

thf(sy_v_j,type,
    j: nat ).

thf(sy_v_t,type,
    t: coinductive_llist @ a ).

thf(sy_v_x,type,
    x: a ).

%----Relevant facts (253)
thf(fact_0_H,axiom,
    ! [Y: a] :
      ( ( ( lList2228235758e_ll2f @ a @ t @ j )
        = ( some @ a @ Y ) )
     => q ) ).

% H
thf(fact_1_jlei,axiom,
    ord_less_eq @ nat @ j @ i ).

% jlei
thf(fact_2_tisome,axiom,
    ( ( lList2228235758e_ll2f @ a @ t @ i )
    = ( some @ a @ x ) ) ).

% tisome
thf(fact_3_option_Oinject,axiom,
    ! [A: $tType,X2: A,Y2: A] :
      ( ( ( some @ A @ X2 )
        = ( some @ A @ Y2 ) )
      = ( X2 = Y2 ) ) ).

% option.inject
thf(fact_4_order__refl,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A] : ( ord_less_eq @ A @ X @ X ) ) ).

% order_refl
thf(fact_5_le__refl,axiom,
    ! [N: nat] : ( ord_less_eq @ nat @ N @ N ) ).

% le_refl
thf(fact_6_le__trans,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( ord_less_eq @ nat @ I @ J )
     => ( ( ord_less_eq @ nat @ J @ K )
       => ( ord_less_eq @ nat @ I @ K ) ) ) ).

% le_trans
thf(fact_7_eq__imp__le,axiom,
    ! [M: nat,N: nat] :
      ( ( M = N )
     => ( ord_less_eq @ nat @ M @ N ) ) ).

% eq_imp_le
thf(fact_8_le__antisym,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ M @ N )
     => ( ( ord_less_eq @ nat @ N @ M )
       => ( M = N ) ) ) ).

% le_antisym
thf(fact_9_nat__le__linear,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ M @ N )
      | ( ord_less_eq @ nat @ N @ M ) ) ).

% nat_le_linear
thf(fact_10_ex__has__least__nat,axiom,
    ! [A: $tType,P: A > $o,K: A,M: A > nat] :
      ( ( P @ K )
     => ? [X3: A] :
          ( ( P @ X3 )
          & ! [Y3: A] :
              ( ( P @ Y3 )
             => ( ord_less_eq @ nat @ ( M @ X3 ) @ ( M @ Y3 ) ) ) ) ) ).

% ex_has_least_nat
thf(fact_11_le__funD,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [F: A > B,G: A > B,X: A] :
          ( ( ord_less_eq @ ( A > B ) @ F @ G )
         => ( ord_less_eq @ B @ ( F @ X ) @ ( G @ X ) ) ) ) ).

% le_funD
thf(fact_12_le__funE,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [F: A > B,G: A > B,X: A] :
          ( ( ord_less_eq @ ( A > B ) @ F @ G )
         => ( ord_less_eq @ B @ ( F @ X ) @ ( G @ X ) ) ) ) ).

% le_funE
thf(fact_13_le__funI,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [F: A > B,G: A > B] :
          ( ! [X3: A] : ( ord_less_eq @ B @ ( F @ X3 ) @ ( G @ X3 ) )
         => ( ord_less_eq @ ( A > B ) @ F @ G ) ) ) ).

% le_funI
thf(fact_14_le__fun__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ( ( ord_less_eq @ ( A > B ) )
        = ( ^ [F2: A > B,G2: A > B] :
            ! [X4: A] : ( ord_less_eq @ B @ ( F2 @ X4 ) @ ( G2 @ X4 ) ) ) ) ) ).

% le_fun_def
thf(fact_15_dual__order_Oantisym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A] :
          ( ( ord_less_eq @ A @ B2 @ A2 )
         => ( ( ord_less_eq @ A @ A2 @ B2 )
           => ( A2 = B2 ) ) ) ) ).

% dual_order.antisym
thf(fact_16_dual__order_Otrans,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,C2: A] :
          ( ( ord_less_eq @ A @ B2 @ A2 )
         => ( ( ord_less_eq @ A @ C2 @ B2 )
           => ( ord_less_eq @ A @ C2 @ A2 ) ) ) ) ).

% dual_order.trans
thf(fact_17_linorder__wlog,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [P: A > A > $o,A2: A,B2: A] :
          ( ! [A3: A,B3: A] :
              ( ( ord_less_eq @ A @ A3 @ B3 )
             => ( P @ A3 @ B3 ) )
         => ( ! [A3: A,B3: A] :
                ( ( P @ B3 @ A3 )
               => ( P @ A3 @ B3 ) )
           => ( P @ A2 @ B2 ) ) ) ) ).

% linorder_wlog
thf(fact_18_dual__order_Orefl,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A] : ( ord_less_eq @ A @ A2 @ A2 ) ) ).

% dual_order.refl
thf(fact_19_order__trans,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A,Z: A] :
          ( ( ord_less_eq @ A @ X @ Y )
         => ( ( ord_less_eq @ A @ Y @ Z )
           => ( ord_less_eq @ A @ X @ Z ) ) ) ) ).

% order_trans
thf(fact_20_order__class_Oorder_Oantisym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ B2 @ A2 )
           => ( A2 = B2 ) ) ) ) ).

% order_class.order.antisym
thf(fact_21_ord__le__eq__trans,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C2: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( B2 = C2 )
           => ( ord_less_eq @ A @ A2 @ C2 ) ) ) ) ).

% ord_le_eq_trans
thf(fact_22_ord__eq__le__trans,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C2: A] :
          ( ( A2 = B2 )
         => ( ( ord_less_eq @ A @ B2 @ C2 )
           => ( ord_less_eq @ A @ A2 @ C2 ) ) ) ) ).

% ord_eq_le_trans
thf(fact_23_antisym__conv,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [Y: A,X: A] :
          ( ( ord_less_eq @ A @ Y @ X )
         => ( ( ord_less_eq @ A @ X @ Y )
            = ( X = Y ) ) ) ) ).

% antisym_conv
thf(fact_24_le__cases3,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A,Z: A] :
          ( ( ( ord_less_eq @ A @ X @ Y )
           => ~ ( ord_less_eq @ A @ Y @ Z ) )
         => ( ( ( ord_less_eq @ A @ Y @ X )
             => ~ ( ord_less_eq @ A @ X @ Z ) )
           => ( ( ( ord_less_eq @ A @ X @ Z )
               => ~ ( ord_less_eq @ A @ Z @ Y ) )
             => ( ( ( ord_less_eq @ A @ Z @ Y )
                 => ~ ( ord_less_eq @ A @ Y @ X ) )
               => ( ( ( ord_less_eq @ A @ Y @ Z )
                   => ~ ( ord_less_eq @ A @ Z @ X ) )
                 => ~ ( ( ord_less_eq @ A @ Z @ X )
                     => ~ ( ord_less_eq @ A @ X @ Y ) ) ) ) ) ) ) ) ).

% le_cases3
thf(fact_25_order_Otrans,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C2: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ B2 @ C2 )
           => ( ord_less_eq @ A @ A2 @ C2 ) ) ) ) ).

% order.trans
thf(fact_26_le__cases,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ~ ( ord_less_eq @ A @ X @ Y )
         => ( ord_less_eq @ A @ Y @ X ) ) ) ).

% le_cases
thf(fact_27_eq__refl,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( X = Y )
         => ( ord_less_eq @ A @ X @ Y ) ) ) ).

% eq_refl
thf(fact_28_linear,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less_eq @ A @ X @ Y )
          | ( ord_less_eq @ A @ Y @ X ) ) ) ).

% linear
thf(fact_29_antisym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less_eq @ A @ X @ Y )
         => ( ( ord_less_eq @ A @ Y @ X )
           => ( X = Y ) ) ) ) ).

% antisym
thf(fact_30_eq__iff,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ( ( ^ [Y4: A,Z2: A] : Y4 = Z2 )
        = ( ^ [X4: A,Y5: A] :
              ( ( ord_less_eq @ A @ X4 @ Y5 )
              & ( ord_less_eq @ A @ Y5 @ X4 ) ) ) ) ) ).

% eq_iff
thf(fact_31_ord__le__eq__subst,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( ord @ B @ ( type2 @ B ) )
        & ( ord @ A @ ( type2 @ A ) ) )
     => ! [A2: A,B2: A,F: A > B,C2: B] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ( F @ B2 )
              = C2 )
           => ( ! [X3: A,Y6: A] :
                  ( ( ord_less_eq @ A @ X3 @ Y6 )
                 => ( ord_less_eq @ B @ ( F @ X3 ) @ ( F @ Y6 ) ) )
             => ( ord_less_eq @ B @ ( F @ A2 ) @ C2 ) ) ) ) ) ).

% ord_le_eq_subst
thf(fact_32_ord__eq__le__subst,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( ord @ B @ ( type2 @ B ) )
        & ( ord @ A @ ( type2 @ A ) ) )
     => ! [A2: A,F: B > A,B2: B,C2: B] :
          ( ( A2
            = ( F @ B2 ) )
         => ( ( ord_less_eq @ B @ B2 @ C2 )
           => ( ! [X3: B,Y6: B] :
                  ( ( ord_less_eq @ B @ X3 @ Y6 )
                 => ( ord_less_eq @ A @ ( F @ X3 ) @ ( F @ Y6 ) ) )
             => ( ord_less_eq @ A @ A2 @ ( F @ C2 ) ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_33_order__subst2,axiom,
    ! [A: $tType,C: $tType] :
      ( ( ( order @ C @ ( type2 @ C ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A2: A,B2: A,F: A > C,C2: C] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ C @ ( F @ B2 ) @ C2 )
           => ( ! [X3: A,Y6: A] :
                  ( ( ord_less_eq @ A @ X3 @ Y6 )
                 => ( ord_less_eq @ C @ ( F @ X3 ) @ ( F @ Y6 ) ) )
             => ( ord_less_eq @ C @ ( F @ A2 ) @ C2 ) ) ) ) ) ).

% order_subst2
thf(fact_34_order__subst1,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( order @ B @ ( type2 @ B ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A2: A,F: B > A,B2: B,C2: B] :
          ( ( ord_less_eq @ A @ A2 @ ( F @ B2 ) )
         => ( ( ord_less_eq @ B @ B2 @ C2 )
           => ( ! [X3: B,Y6: B] :
                  ( ( ord_less_eq @ B @ X3 @ Y6 )
                 => ( ord_less_eq @ A @ ( F @ X3 ) @ ( F @ Y6 ) ) )
             => ( ord_less_eq @ A @ A2 @ ( F @ C2 ) ) ) ) ) ) ).

% order_subst1
thf(fact_35_LeastMI2,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [P: A > $o,X: A,M: A > B,Q: A > $o] :
          ( ( P @ X )
         => ( ! [Y6: A] :
                ( ( P @ Y6 )
               => ( ord_less_eq @ B @ ( M @ X ) @ ( M @ Y6 ) ) )
           => ( ! [X3: A] :
                  ( ( P @ X3 )
                 => ( ! [Y3: A] :
                        ( ( P @ Y3 )
                       => ( ord_less_eq @ B @ ( M @ X3 ) @ ( M @ Y3 ) ) )
                   => ( Q @ X3 ) ) )
             => ( Q @ ( hilbert_LeastM @ A @ B @ M @ P ) ) ) ) ) ) ).

% LeastMI2
thf(fact_36_lfp_Oleq__antisym,axiom,
    ! [A: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less_eq @ A @ X @ Y )
         => ( ( ord_less_eq @ A @ Y @ X )
           => ( X = Y ) ) ) ) ).

% lfp.leq_antisym
thf(fact_37_gfp_Oleq__antisym,axiom,
    ! [A: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [Y: A,X: A] :
          ( ( ord_less_eq @ A @ Y @ X )
         => ( ( ord_less_eq @ A @ X @ Y )
           => ( X = Y ) ) ) ) ).

% gfp.leq_antisym
thf(fact_38_lfp_Oleq__trans,axiom,
    ! [A: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A,Z: A] :
          ( ( ord_less_eq @ A @ X @ Y )
         => ( ( ord_less_eq @ A @ Y @ Z )
           => ( ord_less_eq @ A @ X @ Z ) ) ) ) ).

% lfp.leq_trans
thf(fact_39_gfp_Oleq__trans,axiom,
    ! [A: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [Y: A,X: A,Z: A] :
          ( ( ord_less_eq @ A @ Y @ X )
         => ( ( ord_less_eq @ A @ Z @ Y )
           => ( ord_less_eq @ A @ Z @ X ) ) ) ) ).

% gfp.leq_trans
thf(fact_40_lfp_Oleq__refl,axiom,
    ! [A: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [X: A] : ( ord_less_eq @ A @ X @ X ) ) ).

% lfp.leq_refl
thf(fact_41_wlog__linorder__le,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [P: A > A > $o,B2: A,A2: A] :
          ( ! [A3: A,B3: A] :
              ( ( ord_less_eq @ A @ A3 @ B3 )
             => ( P @ A3 @ B3 ) )
         => ( ( ( P @ B2 @ A2 )
             => ( P @ A2 @ B2 ) )
           => ( P @ A2 @ B2 ) ) ) ) ).

% wlog_linorder_le
thf(fact_42_GreatestMI2,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [P: A > $o,X: A,M: A > B,Q: A > $o] :
          ( ( P @ X )
         => ( ! [Y6: A] :
                ( ( P @ Y6 )
               => ( ord_less_eq @ B @ ( M @ Y6 ) @ ( M @ X ) ) )
           => ( ! [X3: A] :
                  ( ( P @ X3 )
                 => ( ! [Y3: A] :
                        ( ( P @ Y3 )
                       => ( ord_less_eq @ B @ ( M @ Y3 ) @ ( M @ X3 ) ) )
                   => ( Q @ X3 ) ) )
             => ( Q @ ( hilbert_GreatestM @ A @ B @ M @ P ) ) ) ) ) ) ).

% GreatestMI2
thf(fact_43_infinite__idx__SomeE,axiom,
    ! [A: $tType,T: coinductive_llist @ A,A4: set @ A,I: nat] :
      ( ( member @ ( coinductive_llist @ A ) @ T @ ( lList21612149805nflsts @ A @ A4 ) )
     => ~ ! [X3: A] :
            ( ( lList2228235758e_ll2f @ A @ T @ I )
           != ( some @ A @ X3 ) ) ) ).

% infinite_idx_SomeE
thf(fact_44_infinite__Some,axiom,
    ! [A: $tType,T: coinductive_llist @ A,A4: set @ A,I: nat] :
      ( ( member @ ( coinductive_llist @ A ) @ T @ ( lList21612149805nflsts @ A @ A4 ) )
     => ? [A3: A] :
          ( ( lList2228235758e_ll2f @ A @ T @ I )
          = ( some @ A @ A3 ) ) ) ).

% infinite_Some
thf(fact_45_mem__Collect__eq,axiom,
    ! [A: $tType,A2: A,P: A > $o] :
      ( ( member @ A @ A2 @ ( collect @ A @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_46_Collect__mem__eq,axiom,
    ! [A: $tType,A4: set @ A] :
      ( ( collect @ A
        @ ^ [X4: A] : ( member @ A @ X4 @ A4 ) )
      = A4 ) ).

% Collect_mem_eq
thf(fact_47_Collect__cong,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X3: A] :
          ( ( P @ X3 )
          = ( Q @ X3 ) )
     => ( ( collect @ A @ P )
        = ( collect @ A @ Q ) ) ) ).

% Collect_cong
thf(fact_48_ext,axiom,
    ! [B: $tType,A: $tType,F: A > B,G: A > B] :
      ( ! [X3: A] :
          ( ( F @ X3 )
          = ( G @ X3 ) )
     => ( F = G ) ) ).

% ext
thf(fact_49_inflsts__mono,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ord_less_eq @ ( set @ ( coinductive_llist @ A ) ) @ ( lList21612149805nflsts @ A @ A4 ) @ ( lList21612149805nflsts @ A @ B4 ) ) ) ).

% inflsts_mono
thf(fact_50_LeastM__nat__le,axiom,
    ! [A: $tType,P: A > $o,X: A,M: A > nat] :
      ( ( P @ X )
     => ( ord_less_eq @ nat @ ( M @ ( hilbert_LeastM @ A @ nat @ M @ P ) ) @ ( M @ X ) ) ) ).

% LeastM_nat_le
thf(fact_51_LeastM__nat__lemma,axiom,
    ! [A: $tType,P: A > $o,K: A,M: A > nat] :
      ( ( P @ K )
     => ( ( P @ ( hilbert_LeastM @ A @ nat @ M @ P ) )
        & ! [Y3: A] :
            ( ( P @ Y3 )
           => ( ord_less_eq @ nat @ ( M @ ( hilbert_LeastM @ A @ nat @ M @ P ) ) @ ( M @ Y3 ) ) ) ) ) ).

% LeastM_nat_lemma
thf(fact_52_option_Osimps_I7_J,axiom,
    ! [C: $tType,A: $tType,F1: C,F22: A > C,X2: A] :
      ( ( rec_option @ C @ A @ F1 @ F22 @ ( some @ A @ X2 ) )
      = ( F22 @ X2 ) ) ).

% option.simps(7)
thf(fact_53_combine__options__simps_I3_J,axiom,
    ! [A: $tType,F: A > A > A,A2: A,B2: A] :
      ( ( combine_options @ A @ F @ ( some @ A @ A2 ) @ ( some @ A @ B2 ) )
      = ( some @ A @ ( F @ A2 @ B2 ) ) ) ).

% combine_options_simps(3)
thf(fact_54_ll2f__lem1,axiom,
    ! [A: $tType,T: coinductive_llist @ A,I: nat,X: A] :
      ( ( ( lList2228235758e_ll2f @ A @ T @ ( suc @ I ) )
        = ( some @ A @ X ) )
     => ? [Y6: A] :
          ( ( lList2228235758e_ll2f @ A @ T @ I )
          = ( some @ A @ Y6 ) ) ) ).

% ll2f_lem1
thf(fact_55_ll2f__Suc__Some,axiom,
    ! [A: $tType,T: coinductive_llist @ A,I: nat,X: A] :
      ( ( ( lList2228235758e_ll2f @ A @ T @ ( suc @ I ) )
        = ( some @ A @ X ) )
     => ~ ! [X3: A] :
            ( ( lList2228235758e_ll2f @ A @ T @ I )
           != ( some @ A @ X3 ) ) ) ).

% ll2f_Suc_Some
thf(fact_56_ll2f__None__le,axiom,
    ! [A: $tType,T: coinductive_llist @ A,J: nat,I: nat] :
      ( ( ( lList2228235758e_ll2f @ A @ T @ J )
        = ( none @ A ) )
     => ( ( ord_less_eq @ nat @ J @ I )
       => ( ( lList2228235758e_ll2f @ A @ T @ I )
          = ( none @ A ) ) ) ) ).

% ll2f_None_le
thf(fact_57_of__nat__le__iff,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type2 @ A ) )
     => ! [M: nat,N: nat] :
          ( ( ord_less_eq @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) )
          = ( ord_less_eq @ nat @ M @ N ) ) ) ).

% of_nat_le_iff
thf(fact_58_is__none__code_I2_J,axiom,
    ! [B: $tType,X: B] :
      ~ ( is_none @ B @ ( some @ B @ X ) ) ).

% is_none_code(2)
thf(fact_59_option_Opred__inject_I2_J,axiom,
    ! [A: $tType,P: A > $o,A2: A] :
      ( ( pred_option @ A @ P @ ( some @ A @ A2 ) )
      = ( P @ A2 ) ) ).

% option.pred_inject(2)
thf(fact_60_nat_Oinject,axiom,
    ! [X2: nat,Y2: nat] :
      ( ( ( suc @ X2 )
        = ( suc @ Y2 ) )
      = ( X2 = Y2 ) ) ).

% nat.inject
thf(fact_61_old_Onat_Oinject,axiom,
    ! [Nat: nat,Nat2: nat] :
      ( ( ( suc @ Nat )
        = ( suc @ Nat2 ) )
      = ( Nat = Nat2 ) ) ).

% old.nat.inject
thf(fact_62_of__nat__eq__iff,axiom,
    ! [A: $tType] :
      ( ( semiring_char_0 @ A @ ( type2 @ A ) )
     => ! [M: nat,N: nat] :
          ( ( ( semiring_1_of_nat @ A @ M )
            = ( semiring_1_of_nat @ A @ N ) )
          = ( M = N ) ) ) ).

% of_nat_eq_iff
thf(fact_63_Suc__le__mono,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_eq @ nat @ ( suc @ N ) @ ( suc @ M ) )
      = ( ord_less_eq @ nat @ N @ M ) ) ).

% Suc_le_mono
thf(fact_64_not__Some__eq,axiom,
    ! [A: $tType,X: option @ A] :
      ( ( ! [Y5: A] :
            ( X
           != ( some @ A @ Y5 ) ) )
      = ( X
        = ( none @ A ) ) ) ).

% not_Some_eq
thf(fact_65_not__None__eq,axiom,
    ! [A: $tType,X: option @ A] :
      ( ( X
       != ( none @ A ) )
      = ( ? [Y5: A] :
            ( X
            = ( some @ A @ Y5 ) ) ) ) ).

% not_None_eq
thf(fact_66_is__none__code_I1_J,axiom,
    ! [A: $tType] : ( is_none @ A @ ( none @ A ) ) ).

% is_none_code(1)
thf(fact_67_combine__options__simps_I2_J,axiom,
    ! [A: $tType,F: A > A > A,X: option @ A] :
      ( ( combine_options @ A @ F @ X @ ( none @ A ) )
      = X ) ).

% combine_options_simps(2)
thf(fact_68_combine__options__simps_I1_J,axiom,
    ! [A: $tType,F: A > A > A,Y: option @ A] :
      ( ( combine_options @ A @ F @ ( none @ A ) @ Y )
      = Y ) ).

% combine_options_simps(1)
thf(fact_69_LeastM__natI,axiom,
    ! [A: $tType,P: A > $o,K: A,M: A > nat] :
      ( ( P @ K )
     => ( P @ ( hilbert_LeastM @ A @ nat @ M @ P ) ) ) ).

% LeastM_natI
thf(fact_70_ll2f__None__Suc,axiom,
    ! [A: $tType,T: coinductive_llist @ A,I: nat] :
      ( ( ( lList2228235758e_ll2f @ A @ T @ I )
        = ( none @ A ) )
     => ( ( lList2228235758e_ll2f @ A @ T @ ( suc @ I ) )
        = ( none @ A ) ) ) ).

% ll2f_None_Suc
thf(fact_71_option_Osimps_I6_J,axiom,
    ! [A: $tType,C: $tType,F1: C,F22: A > C] :
      ( ( rec_option @ C @ A @ F1 @ F22 @ ( none @ A ) )
      = F1 ) ).

% option.simps(6)
thf(fact_72_is__none__simps_I1_J,axiom,
    ! [A: $tType] : ( is_none @ A @ ( none @ A ) ) ).

% is_none_simps(1)
thf(fact_73_option_Opred__inject_I1_J,axiom,
    ! [A: $tType,P: A > $o] : ( pred_option @ A @ P @ ( none @ A ) ) ).

% option.pred_inject(1)
thf(fact_74_Suc__inject,axiom,
    ! [X: nat,Y: nat] :
      ( ( ( suc @ X )
        = ( suc @ Y ) )
     => ( X = Y ) ) ).

% Suc_inject
thf(fact_75_n__not__Suc__n,axiom,
    ! [N: nat] :
      ( N
     != ( suc @ N ) ) ).

% n_not_Suc_n
thf(fact_76_Option_Ois__none__def,axiom,
    ! [A: $tType] :
      ( ( is_none @ A )
      = ( ^ [X4: option @ A] :
            ( X4
            = ( none @ A ) ) ) ) ).

% Option.is_none_def
thf(fact_77_combine__options__assoc,axiom,
    ! [A: $tType,F: A > A > A,X: option @ A,Y: option @ A,Z: option @ A] :
      ( ! [X3: A,Y6: A,Z3: A] :
          ( ( F @ ( F @ X3 @ Y6 ) @ Z3 )
          = ( F @ X3 @ ( F @ Y6 @ Z3 ) ) )
     => ( ( combine_options @ A @ F @ ( combine_options @ A @ F @ X @ Y ) @ Z )
        = ( combine_options @ A @ F @ X @ ( combine_options @ A @ F @ Y @ Z ) ) ) ) ).

% combine_options_assoc
thf(fact_78_combine__options__commute,axiom,
    ! [A: $tType,F: A > A > A,X: option @ A,Y: option @ A] :
      ( ! [X3: A,Y6: A] :
          ( ( F @ X3 @ Y6 )
          = ( F @ Y6 @ X3 ) )
     => ( ( combine_options @ A @ F @ X @ Y )
        = ( combine_options @ A @ F @ Y @ X ) ) ) ).

% combine_options_commute
thf(fact_79_combine__options__left__commute,axiom,
    ! [A: $tType,F: A > A > A,Y: option @ A,X: option @ A,Z: option @ A] :
      ( ! [X3: A,Y6: A] :
          ( ( F @ X3 @ Y6 )
          = ( F @ Y6 @ X3 ) )
     => ( ! [X3: A,Y6: A,Z3: A] :
            ( ( F @ ( F @ X3 @ Y6 ) @ Z3 )
            = ( F @ X3 @ ( F @ Y6 @ Z3 ) ) )
       => ( ( combine_options @ A @ F @ Y @ ( combine_options @ A @ F @ X @ Z ) )
          = ( combine_options @ A @ F @ X @ ( combine_options @ A @ F @ Y @ Z ) ) ) ) ) ).

% combine_options_left_commute
thf(fact_80_full__nat__induct,axiom,
    ! [P: nat > $o,N: nat] :
      ( ! [N2: nat] :
          ( ! [M2: nat] :
              ( ( ord_less_eq @ nat @ ( suc @ M2 ) @ N2 )
             => ( P @ M2 ) )
         => ( P @ N2 ) )
     => ( P @ N ) ) ).

% full_nat_induct
thf(fact_81_not__less__eq__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( ~ ( ord_less_eq @ nat @ M @ N ) )
      = ( ord_less_eq @ nat @ ( suc @ N ) @ M ) ) ).

% not_less_eq_eq
thf(fact_82_Suc__n__not__le__n,axiom,
    ! [N: nat] :
      ~ ( ord_less_eq @ nat @ ( suc @ N ) @ N ) ).

% Suc_n_not_le_n
thf(fact_83_le__Suc__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ M @ ( suc @ N ) )
      = ( ( ord_less_eq @ nat @ M @ N )
        | ( M
          = ( suc @ N ) ) ) ) ).

% le_Suc_eq
thf(fact_84_Suc__le__D,axiom,
    ! [N: nat,M3: nat] :
      ( ( ord_less_eq @ nat @ ( suc @ N ) @ M3 )
     => ? [M4: nat] :
          ( M3
          = ( suc @ M4 ) ) ) ).

% Suc_le_D
thf(fact_85_le__SucI,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ M @ N )
     => ( ord_less_eq @ nat @ M @ ( suc @ N ) ) ) ).

% le_SucI
thf(fact_86_le__SucE,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ M @ ( suc @ N ) )
     => ( ~ ( ord_less_eq @ nat @ M @ N )
       => ( M
          = ( suc @ N ) ) ) ) ).

% le_SucE
thf(fact_87_Suc__leD,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ ( suc @ M ) @ N )
     => ( ord_less_eq @ nat @ M @ N ) ) ).

% Suc_leD
thf(fact_88_combine__options__cases,axiom,
    ! [A: $tType,B: $tType,X: option @ A,P: ( option @ A ) > ( option @ B ) > $o,Y: option @ B] :
      ( ( ( X
          = ( none @ A ) )
       => ( P @ X @ Y ) )
     => ( ( ( Y
            = ( none @ B ) )
         => ( P @ X @ Y ) )
       => ( ! [A3: A,B3: B] :
              ( ( X
                = ( some @ A @ A3 ) )
             => ( ( Y
                  = ( some @ B @ B3 ) )
               => ( P @ X @ Y ) ) )
         => ( P @ X @ Y ) ) ) ) ).

% combine_options_cases
thf(fact_89_split__option__all,axiom,
    ! [A: $tType] :
      ( ( ^ [P2: ( option @ A ) > $o] :
          ! [X5: option @ A] : ( P2 @ X5 ) )
      = ( ^ [P3: ( option @ A ) > $o] :
            ( ( P3 @ ( none @ A ) )
            & ! [X4: A] : ( P3 @ ( some @ A @ X4 ) ) ) ) ) ).

% split_option_all
thf(fact_90_split__option__ex,axiom,
    ! [A: $tType] :
      ( ( ^ [P2: ( option @ A ) > $o] :
          ? [X5: option @ A] : ( P2 @ X5 ) )
      = ( ^ [P3: ( option @ A ) > $o] :
            ( ( P3 @ ( none @ A ) )
            | ? [X4: A] : ( P3 @ ( some @ A @ X4 ) ) ) ) ) ).

% split_option_ex
thf(fact_91_option_Oinducts,axiom,
    ! [A: $tType,P: ( option @ A ) > $o,Option: option @ A] :
      ( ( P @ ( none @ A ) )
     => ( ! [X3: A] : ( P @ ( some @ A @ X3 ) )
       => ( P @ Option ) ) ) ).

% option.inducts
thf(fact_92_option_Oexhaust,axiom,
    ! [A: $tType,Y: option @ A] :
      ( ( Y
       != ( none @ A ) )
     => ~ ! [X22: A] :
            ( Y
           != ( some @ A @ X22 ) ) ) ).

% option.exhaust
thf(fact_93_option_OdiscI,axiom,
    ! [A: $tType,Option: option @ A,X2: A] :
      ( ( Option
        = ( some @ A @ X2 ) )
     => ( Option
       != ( none @ A ) ) ) ).

% option.discI
thf(fact_94_option_Odistinct_I1_J,axiom,
    ! [A: $tType,X2: A] :
      ( ( none @ A )
     != ( some @ A @ X2 ) ) ).

% option.distinct(1)
thf(fact_95_is__none__simps_I2_J,axiom,
    ! [B: $tType,X: B] :
      ~ ( is_none @ B @ ( some @ B @ X ) ) ).

% is_none_simps(2)
thf(fact_96_lift__Suc__antimono__le,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [F: nat > A,N: nat,N3: nat] :
          ( ! [N2: nat] : ( ord_less_eq @ A @ ( F @ ( suc @ N2 ) ) @ ( F @ N2 ) )
         => ( ( ord_less_eq @ nat @ N @ N3 )
           => ( ord_less_eq @ A @ ( F @ N3 ) @ ( F @ N ) ) ) ) ) ).

% lift_Suc_antimono_le
thf(fact_97_lift__Suc__mono__le,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [F: nat > A,N: nat,N3: nat] :
          ( ! [N2: nat] : ( ord_less_eq @ A @ ( F @ N2 ) @ ( F @ ( suc @ N2 ) ) )
         => ( ( ord_less_eq @ nat @ N @ N3 )
           => ( ord_less_eq @ A @ ( F @ N ) @ ( F @ N3 ) ) ) ) ) ).

% lift_Suc_mono_le
thf(fact_98_subset__antisym,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ( ord_less_eq @ ( set @ A ) @ B4 @ A4 )
       => ( A4 = B4 ) ) ) ).

% subset_antisym
thf(fact_99_subsetI,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A] :
      ( ! [X3: A] :
          ( ( member @ A @ X3 @ A4 )
         => ( member @ A @ X3 @ B4 ) )
     => ( ord_less_eq @ ( set @ A ) @ A4 @ B4 ) ) ).

% subsetI
thf(fact_100_real__arch__simple,axiom,
    ! [A: $tType] :
      ( ( archim1804426504_field @ A @ ( type2 @ A ) )
     => ! [X: A] :
        ? [N2: nat] : ( ord_less_eq @ A @ X @ ( semiring_1_of_nat @ A @ N2 ) ) ) ).

% real_arch_simple
thf(fact_101_poslsts__mono,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ord_less_eq @ ( set @ ( coinductive_llist @ A ) ) @ ( lList21148268032oslsts @ A @ A4 ) @ ( lList21148268032oslsts @ A @ B4 ) ) ) ).

% poslsts_mono
thf(fact_102_fpslsts__mono,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ord_less_eq @ ( set @ ( coinductive_llist @ A ) ) @ ( lList22096119349pslsts @ A @ A4 ) @ ( lList22096119349pslsts @ A @ B4 ) ) ) ).

% fpslsts_mono
thf(fact_103_zle__int,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq @ int @ ( semiring_1_of_nat @ int @ M ) @ ( semiring_1_of_nat @ int @ N ) )
      = ( ord_less_eq @ nat @ M @ N ) ) ).

% zle_int
thf(fact_104_transfer__int__nat__relations_I3_J,axiom,
    ! [X: nat,Y: nat] :
      ( ( ord_less_eq @ int @ ( semiring_1_of_nat @ int @ X ) @ ( semiring_1_of_nat @ int @ Y ) )
      = ( ord_less_eq @ nat @ X @ Y ) ) ).

% transfer_int_nat_relations(3)
thf(fact_105_int__if__cong,axiom,
    ! [P: $o,X: nat,Y: nat] :
      ( ( P
       => ( ( semiring_1_of_nat @ int @ X )
          = ( semiring_1_of_nat @ int @ ( if @ nat @ P @ X @ Y ) ) ) )
      & ( ~ P
       => ( ( semiring_1_of_nat @ int @ Y )
          = ( semiring_1_of_nat @ int @ ( if @ nat @ P @ X @ Y ) ) ) ) ) ).

% int_if_cong
thf(fact_106_int__int__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( ( semiring_1_of_nat @ int @ M )
        = ( semiring_1_of_nat @ int @ N ) )
      = ( M = N ) ) ).

% int_int_eq
thf(fact_107_transfer__int__nat__relations_I1_J,axiom,
    ! [X: nat,Y: nat] :
      ( ( ( semiring_1_of_nat @ int @ X )
        = ( semiring_1_of_nat @ int @ Y ) )
      = ( X = Y ) ) ).

% transfer_int_nat_relations(1)
thf(fact_108_set__mp,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A,X: A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ( member @ A @ X @ A4 )
       => ( member @ A @ X @ B4 ) ) ) ).

% set_mp
thf(fact_109_in__mono,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A,X: A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ( member @ A @ X @ A4 )
       => ( member @ A @ X @ B4 ) ) ) ).

% in_mono
thf(fact_110_subsetD,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A,C2: A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ( member @ A @ C2 @ A4 )
       => ( member @ A @ C2 @ B4 ) ) ) ).

% subsetD
thf(fact_111_subsetCE,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A,C2: A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ( member @ A @ C2 @ A4 )
       => ( member @ A @ C2 @ B4 ) ) ) ).

% subsetCE
thf(fact_112_equalityE,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A] :
      ( ( A4 = B4 )
     => ~ ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
         => ~ ( ord_less_eq @ ( set @ A ) @ B4 @ A4 ) ) ) ).

% equalityE
thf(fact_113_subset__eq,axiom,
    ! [A: $tType] :
      ( ( ord_less_eq @ ( set @ A ) )
      = ( ^ [A5: set @ A,B5: set @ A] :
          ! [X4: A] :
            ( ( member @ A @ X4 @ A5 )
           => ( member @ A @ X4 @ B5 ) ) ) ) ).

% subset_eq
thf(fact_114_equalityD1,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A] :
      ( ( A4 = B4 )
     => ( ord_less_eq @ ( set @ A ) @ A4 @ B4 ) ) ).

% equalityD1
thf(fact_115_equalityD2,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A] :
      ( ( A4 = B4 )
     => ( ord_less_eq @ ( set @ A ) @ B4 @ A4 ) ) ).

% equalityD2
thf(fact_116_set__rev__mp,axiom,
    ! [A: $tType,X: A,A4: set @ A,B4: set @ A] :
      ( ( member @ A @ X @ A4 )
     => ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
       => ( member @ A @ X @ B4 ) ) ) ).

% set_rev_mp
thf(fact_117_subset__iff,axiom,
    ! [A: $tType] :
      ( ( ord_less_eq @ ( set @ A ) )
      = ( ^ [A5: set @ A,B5: set @ A] :
          ! [T2: A] :
            ( ( member @ A @ T2 @ A5 )
           => ( member @ A @ T2 @ B5 ) ) ) ) ).

% subset_iff
thf(fact_118_rev__subsetD,axiom,
    ! [A: $tType,C2: A,A4: set @ A,B4: set @ A] :
      ( ( member @ A @ C2 @ A4 )
     => ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
       => ( member @ A @ C2 @ B4 ) ) ) ).

% rev_subsetD
thf(fact_119_subset__refl,axiom,
    ! [A: $tType,A4: set @ A] : ( ord_less_eq @ ( set @ A ) @ A4 @ A4 ) ).

% subset_refl
thf(fact_120_Collect__mono,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X3: A] :
          ( ( P @ X3 )
         => ( Q @ X3 ) )
     => ( ord_less_eq @ ( set @ A ) @ ( collect @ A @ P ) @ ( collect @ A @ Q ) ) ) ).

% Collect_mono
thf(fact_121_subset__trans,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A,C3: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ( ord_less_eq @ ( set @ A ) @ B4 @ C3 )
       => ( ord_less_eq @ ( set @ A ) @ A4 @ C3 ) ) ) ).

% subset_trans
thf(fact_122_set__eq__subset,axiom,
    ! [A: $tType] :
      ( ( ^ [Y4: set @ A,Z2: set @ A] : Y4 = Z2 )
      = ( ^ [A5: set @ A,B5: set @ A] :
            ( ( ord_less_eq @ ( set @ A ) @ A5 @ B5 )
            & ( ord_less_eq @ ( set @ A ) @ B5 @ A5 ) ) ) ) ).

% set_eq_subset
thf(fact_123_contra__subsetD,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A,C2: A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ~ ( member @ A @ C2 @ B4 )
       => ~ ( member @ A @ C2 @ A4 ) ) ) ).

% contra_subsetD
thf(fact_124_Collect__mono__iff,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ( ord_less_eq @ ( set @ A ) @ ( collect @ A @ P ) @ ( collect @ A @ Q ) )
      = ( ! [X4: A] :
            ( ( P @ X4 )
           => ( Q @ X4 ) ) ) ) ).

% Collect_mono_iff
thf(fact_125_round__of__nat,axiom,
    ! [A: $tType] :
      ( ( archim1727834104eiling @ A @ ( type2 @ A ) )
     => ! [N: nat] :
          ( ( archimedean_round @ A @ ( semiring_1_of_nat @ A @ N ) )
          = ( semiring_1_of_nat @ int @ N ) ) ) ).

% round_of_nat
thf(fact_126_option_Ocollapse,axiom,
    ! [A: $tType,Option: option @ A] :
      ( ( Option
       != ( none @ A ) )
     => ( ( some @ A @ ( the @ A @ Option ) )
        = Option ) ) ).

% option.collapse
thf(fact_127_transfer__morphismI,axiom,
    ! [B: $tType,A: $tType,F: A > B,A4: A > $o] : ( nat_tr1645093318rphism @ A @ B @ F @ A4 ) ).

% transfer_morphismI
thf(fact_128_of__nat__aux_Osimps_I2_J,axiom,
    ! [A: $tType] :
      ( ( semiring_1 @ A @ ( type2 @ A ) )
     => ! [Inc: A > A,N: nat,I: A] :
          ( ( semiri532925092at_aux @ A @ Inc @ ( suc @ N ) @ I )
          = ( semiri532925092at_aux @ A @ Inc @ N @ ( Inc @ I ) ) ) ) ).

% of_nat_aux.simps(2)
thf(fact_129_round__mono,axiom,
    ! [A: $tType] :
      ( ( archim1727834104eiling @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less_eq @ A @ X @ Y )
         => ( ord_less_eq @ int @ ( archimedean_round @ A @ X ) @ ( archimedean_round @ A @ Y ) ) ) ) ).

% round_mono
thf(fact_130_transfer__morphism__def,axiom,
    ! [A: $tType,B: $tType] :
      ( ( nat_tr1645093318rphism @ B @ A )
      = ( ^ [F2: B > A,A5: B > $o] : $true ) ) ).

% transfer_morphism_def
thf(fact_131_option_Oexpand,axiom,
    ! [A: $tType,Option: option @ A,Option2: option @ A] :
      ( ( ( Option
          = ( none @ A ) )
        = ( Option2
          = ( none @ A ) ) )
     => ( ( ( Option
           != ( none @ A ) )
         => ( ( Option2
             != ( none @ A ) )
           => ( ( the @ A @ Option )
              = ( the @ A @ Option2 ) ) ) )
       => ( Option = Option2 ) ) ) ).

% option.expand
thf(fact_132_option_Osel,axiom,
    ! [A: $tType,X2: A] :
      ( ( the @ A @ ( some @ A @ X2 ) )
      = X2 ) ).

% option.sel
thf(fact_133_option_Oexhaust__sel,axiom,
    ! [A: $tType,Option: option @ A] :
      ( ( Option
       != ( none @ A ) )
     => ( Option
        = ( some @ A @ ( the @ A @ Option ) ) ) ) ).

% option.exhaust_sel
thf(fact_134_option_Osplit__sel__asm,axiom,
    ! [B: $tType,A: $tType,P: B > $o,F1: B,F22: A > B,Option: option @ A] :
      ( ( P @ ( case_option @ B @ A @ F1 @ F22 @ Option ) )
      = ( ~ ( ( ( Option
                = ( none @ A ) )
              & ~ ( P @ F1 ) )
            | ( ( Option
                = ( some @ A @ ( the @ A @ Option ) ) )
              & ~ ( P @ ( F22 @ ( the @ A @ Option ) ) ) ) ) ) ) ).

% option.split_sel_asm
thf(fact_135_option_Osplit__sel,axiom,
    ! [B: $tType,A: $tType,P: B > $o,F1: B,F22: A > B,Option: option @ A] :
      ( ( P @ ( case_option @ B @ A @ F1 @ F22 @ Option ) )
      = ( ( ( Option
            = ( none @ A ) )
         => ( P @ F1 ) )
        & ( ( Option
            = ( some @ A @ ( the @ A @ Option ) ) )
         => ( P @ ( F22 @ ( the @ A @ Option ) ) ) ) ) ) ).

% option.split_sel
thf(fact_136_option_Ocase__eq__if,axiom,
    ! [A: $tType,B: $tType] :
      ( ( case_option @ B @ A )
      = ( ^ [F12: B,F23: A > B,Option3: option @ A] :
            ( if @ B
            @ ( Option3
              = ( none @ A ) )
            @ F12
            @ ( F23 @ ( the @ A @ Option3 ) ) ) ) ) ).

% option.case_eq_if
thf(fact_137_is__none__bind,axiom,
    ! [A: $tType,B: $tType,F: option @ B,G: B > ( option @ A )] :
      ( ( is_none @ A @ ( bind @ B @ A @ F @ G ) )
      = ( ( is_none @ B @ F )
        | ( is_none @ A @ ( G @ ( the @ B @ F ) ) ) ) ) ).

% is_none_bind
thf(fact_138_bind__runit,axiom,
    ! [A: $tType,X: option @ A] :
      ( ( bind @ A @ A @ X @ ( some @ A ) )
      = X ) ).

% bind_runit
thf(fact_139_bind_Obind__lzero,axiom,
    ! [A: $tType,B: $tType,F: A > ( option @ B )] :
      ( ( bind @ A @ B @ ( none @ A ) @ F )
      = ( none @ B ) ) ).

% bind.bind_lzero
thf(fact_140_bind__eq__Some__conv,axiom,
    ! [A: $tType,B: $tType,F: option @ B,G: B > ( option @ A ),X: A] :
      ( ( ( bind @ B @ A @ F @ G )
        = ( some @ A @ X ) )
      = ( ? [Y5: B] :
            ( ( F
              = ( some @ B @ Y5 ) )
            & ( ( G @ Y5 )
              = ( some @ A @ X ) ) ) ) ) ).

% bind_eq_Some_conv
thf(fact_141_bind_Obind__lunit,axiom,
    ! [B: $tType,A: $tType,X: A,F: A > ( option @ B )] :
      ( ( bind @ A @ B @ ( some @ A @ X ) @ F )
      = ( F @ X ) ) ).

% bind.bind_lunit
thf(fact_142_Option_Obind__cong,axiom,
    ! [B: $tType,A: $tType,X: option @ A,Y: option @ A,F: A > ( option @ B ),G: A > ( option @ B )] :
      ( ( X = Y )
     => ( ! [A3: A] :
            ( ( Y
              = ( some @ A @ A3 ) )
           => ( ( F @ A3 )
              = ( G @ A3 ) ) )
       => ( ( bind @ A @ B @ X @ F )
          = ( bind @ A @ B @ Y @ G ) ) ) ) ).

% Option.bind_cong
thf(fact_143_bind__option__cong__code,axiom,
    ! [B: $tType,A: $tType,X: option @ A,Y: option @ A,F: A > ( option @ B )] :
      ( ( X = Y )
     => ( ( bind @ A @ B @ X @ F )
        = ( bind @ A @ B @ Y @ F ) ) ) ).

% bind_option_cong_code
thf(fact_144_option_Osimps_I4_J,axiom,
    ! [A: $tType,B: $tType,F1: B,F22: A > B] :
      ( ( case_option @ B @ A @ F1 @ F22 @ ( none @ A ) )
      = F1 ) ).

% option.simps(4)
thf(fact_145_option_Osimps_I5_J,axiom,
    ! [B: $tType,A: $tType,F1: B,F22: A > B,X2: A] :
      ( ( case_option @ B @ A @ F1 @ F22 @ ( some @ A @ X2 ) )
      = ( F22 @ X2 ) ) ).

% option.simps(5)
thf(fact_146_bind__split,axiom,
    ! [A: $tType,B: $tType,P: ( option @ A ) > $o,M: option @ B,F: B > ( option @ A )] :
      ( ( P @ ( bind @ B @ A @ M @ F ) )
      = ( ( ( M
            = ( none @ B ) )
         => ( P @ ( none @ A ) ) )
        & ! [V: B] :
            ( ( M
              = ( some @ B @ V ) )
           => ( P @ ( F @ V ) ) ) ) ) ).

% bind_split
thf(fact_147_bind__split__asm,axiom,
    ! [A: $tType,B: $tType,P: ( option @ A ) > $o,M: option @ B,F: B > ( option @ A )] :
      ( ( P @ ( bind @ B @ A @ M @ F ) )
      = ( ~ ( ( ( M
                = ( none @ B ) )
              & ~ ( P @ ( none @ A ) ) )
            | ? [X4: B] :
                ( ( M
                  = ( some @ B @ X4 ) )
                & ~ ( P @ ( F @ X4 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_148_bind__eq__None__conv,axiom,
    ! [B: $tType,A: $tType,A2: option @ B,F: B > ( option @ A )] :
      ( ( ( bind @ B @ A @ A2 @ F )
        = ( none @ A ) )
      = ( ( A2
          = ( none @ B ) )
        | ( ( F @ ( the @ B @ A2 ) )
          = ( none @ A ) ) ) ) ).

% bind_eq_None_conv
thf(fact_149_alllsts__mono,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ord_less_eq @ ( set @ ( coinductive_llist @ A ) ) @ ( lList2435255213lllsts @ A @ A4 ) @ ( lList2435255213lllsts @ A @ B4 ) ) ) ).

% alllsts_mono
thf(fact_150_nat__le__iff,axiom,
    ! [X: int,N: nat] :
      ( ( ord_less_eq @ nat @ ( nat2 @ X ) @ N )
      = ( ord_less_eq @ int @ X @ ( semiring_1_of_nat @ int @ N ) ) ) ).

% nat_le_iff
thf(fact_151_ll2f__LNil,axiom,
    ! [A: $tType,X: nat] :
      ( ( lList2228235758e_ll2f @ A @ ( coinductive_LNil @ A ) @ X )
      = ( none @ A ) ) ).

% ll2f_LNil
thf(fact_152_option_Oset__sel,axiom,
    ! [A: $tType,A2: option @ A] :
      ( ( A2
       != ( none @ A ) )
     => ( member @ A @ ( the @ A @ A2 ) @ ( set_option @ A @ A2 ) ) ) ).

% option.set_sel
thf(fact_153_nat__int,axiom,
    ! [N: nat] :
      ( ( nat2 @ ( semiring_1_of_nat @ int @ N ) )
      = N ) ).

% nat_int
thf(fact_154_elem__set,axiom,
    ! [A: $tType,X: A,Xo: option @ A] :
      ( ( member @ A @ X @ ( set_option @ A @ Xo ) )
      = ( Xo
        = ( some @ A @ X ) ) ) ).

% elem_set
thf(fact_155_poslsts__iff,axiom,
    ! [A: $tType,S: coinductive_llist @ A,A4: set @ A] :
      ( ( member @ ( coinductive_llist @ A ) @ S @ ( lList21148268032oslsts @ A @ A4 ) )
      = ( ( member @ ( coinductive_llist @ A ) @ S @ ( lList2435255213lllsts @ A @ A4 ) )
        & ( S
         != ( coinductive_LNil @ A ) ) ) ) ).

% poslsts_iff
thf(fact_156_ospec,axiom,
    ! [A: $tType,A4: option @ A,P: A > $o,X: A] :
      ( ! [X3: A] :
          ( ( member @ A @ X3 @ ( set_option @ A @ A4 ) )
         => ( P @ X3 ) )
     => ( ( A4
          = ( some @ A @ X ) )
       => ( P @ X ) ) ) ).

% ospec
thf(fact_157_option_Oset__cases,axiom,
    ! [A: $tType,E: A,A2: option @ A] :
      ( ( member @ A @ E @ ( set_option @ A @ A2 ) )
     => ( A2
        = ( some @ A @ E ) ) ) ).

% option.set_cases
thf(fact_158_option_Oset__intros,axiom,
    ! [A: $tType,A2: A] : ( member @ A @ A2 @ ( set_option @ A @ ( some @ A @ A2 ) ) ) ).

% option.set_intros
thf(fact_159_nat__if__cong,axiom,
    ! [P: $o,X: int,Y: int] :
      ( ( P
       => ( ( nat2 @ X )
          = ( nat2 @ ( if @ int @ P @ X @ Y ) ) ) )
      & ( ~ P
       => ( ( nat2 @ Y )
          = ( nat2 @ ( if @ int @ P @ X @ Y ) ) ) ) ) ).

% nat_if_cong
thf(fact_160_alllsts_OLNil__all,axiom,
    ! [A: $tType,A4: set @ A] : ( member @ ( coinductive_llist @ A ) @ ( coinductive_LNil @ A ) @ ( lList2435255213lllsts @ A @ A4 ) ) ).

% alllsts.LNil_all
thf(fact_161_infsubsetall,axiom,
    ! [A: $tType,X: coinductive_llist @ A,A4: set @ A] :
      ( ( member @ ( coinductive_llist @ A ) @ X @ ( lList21612149805nflsts @ A @ A4 ) )
     => ( member @ ( coinductive_llist @ A ) @ X @ ( lList2435255213lllsts @ A @ A4 ) ) ) ).

% infsubsetall
thf(fact_162_bind__option__cong,axiom,
    ! [B: $tType,A: $tType,X: option @ A,Y: option @ A,F: A > ( option @ B ),G: A > ( option @ B )] :
      ( ( X = Y )
     => ( ! [Z3: A] :
            ( ( member @ A @ Z3 @ ( set_option @ A @ Y ) )
           => ( ( F @ Z3 )
              = ( G @ Z3 ) ) )
       => ( ( bind @ A @ B @ X @ F )
          = ( bind @ A @ B @ Y @ G ) ) ) ) ).

% bind_option_cong
thf(fact_163_option_Opred__cong,axiom,
    ! [A: $tType,X: option @ A,Ya: option @ A,P: A > $o,Pa: A > $o] :
      ( ( X = Ya )
     => ( ! [Z3: A] :
            ( ( member @ A @ Z3 @ ( set_option @ A @ Ya ) )
           => ( ( P @ Z3 )
              = ( Pa @ Z3 ) ) )
       => ( ( pred_option @ A @ P @ X )
          = ( pred_option @ A @ Pa @ Ya ) ) ) ) ).

% option.pred_cong
thf(fact_164_option_Opred__mono__strong,axiom,
    ! [A: $tType,P: A > $o,X: option @ A,Pa: A > $o] :
      ( ( pred_option @ A @ P @ X )
     => ( ! [Z3: A] :
            ( ( member @ A @ Z3 @ ( set_option @ A @ X ) )
           => ( ( P @ Z3 )
             => ( Pa @ Z3 ) ) )
       => ( pred_option @ A @ Pa @ X ) ) ) ).

% option.pred_mono_strong
thf(fact_165_nat__mono,axiom,
    ! [X: int,Y: int] :
      ( ( ord_less_eq @ int @ X @ Y )
     => ( ord_less_eq @ nat @ ( nat2 @ X ) @ ( nat2 @ Y ) ) ) ).

% nat_mono
thf(fact_166_lbutlast__LNil,axiom,
    ! [A: $tType] :
      ( ( lList2370560421utlast @ A @ ( coinductive_LNil @ A ) )
      = ( coinductive_LNil @ A ) ) ).

% lbutlast_LNil
thf(fact_167_le__nat__iff,axiom,
    ! [K: int,N: nat] :
      ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ K )
     => ( ( ord_less_eq @ nat @ N @ ( nat2 @ K ) )
        = ( ord_less_eq @ int @ ( semiring_1_of_nat @ int @ N ) @ K ) ) ) ).

% le_nat_iff
thf(fact_168_int__nat__eq,axiom,
    ! [Z: int] :
      ( ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z )
       => ( ( semiring_1_of_nat @ int @ ( nat2 @ Z ) )
          = Z ) )
      & ( ~ ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z )
       => ( ( semiring_1_of_nat @ int @ ( nat2 @ Z ) )
          = ( zero_zero @ int ) ) ) ) ).

% int_nat_eq
thf(fact_169_of__nat__eq__0__iff,axiom,
    ! [A: $tType] :
      ( ( semiring_char_0 @ A @ ( type2 @ A ) )
     => ! [M: nat] :
          ( ( ( semiring_1_of_nat @ A @ M )
            = ( zero_zero @ A ) )
          = ( M
            = ( zero_zero @ nat ) ) ) ) ).

% of_nat_eq_0_iff
thf(fact_170_of__nat__0__eq__iff,axiom,
    ! [A: $tType] :
      ( ( semiring_char_0 @ A @ ( type2 @ A ) )
     => ! [N: nat] :
          ( ( ( zero_zero @ A )
            = ( semiring_1_of_nat @ A @ N ) )
          = ( ( zero_zero @ nat )
            = N ) ) ) ).

% of_nat_0_eq_iff
thf(fact_171_of__nat__0,axiom,
    ! [A: $tType] :
      ( ( semiring_1 @ A @ ( type2 @ A ) )
     => ( ( semiring_1_of_nat @ A @ ( zero_zero @ nat ) )
        = ( zero_zero @ A ) ) ) ).

% of_nat_0
thf(fact_172_of__nat__le__0__iff,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type2 @ A ) )
     => ! [M: nat] :
          ( ( ord_less_eq @ A @ ( semiring_1_of_nat @ A @ M ) @ ( zero_zero @ A ) )
          = ( M
            = ( zero_zero @ nat ) ) ) ) ).

% of_nat_le_0_iff
thf(fact_173_round__0,axiom,
    ! [A: $tType] :
      ( ( archim1727834104eiling @ A @ ( type2 @ A ) )
     => ( ( archimedean_round @ A @ ( zero_zero @ A ) )
        = ( zero_zero @ int ) ) ) ).

% round_0
thf(fact_174_less__eq__int__code_I1_J,axiom,
    ord_less_eq @ int @ ( zero_zero @ int ) @ ( zero_zero @ int ) ).

% less_eq_int_code(1)
thf(fact_175_Nat__Transfer_Otransfer__nat__int__function__closures_I5_J,axiom,
    ord_less_eq @ int @ ( zero_zero @ int ) @ ( zero_zero @ int ) ).

% Nat_Transfer.transfer_nat_int_function_closures(5)
thf(fact_176_of__nat__0__le__iff,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type2 @ A ) )
     => ! [N: nat] : ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( semiring_1_of_nat @ A @ N ) ) ) ).

% of_nat_0_le_iff
thf(fact_177_of__nat__neq__0,axiom,
    ! [A: $tType] :
      ( ( semiring_char_0 @ A @ ( type2 @ A ) )
     => ! [N: nat] :
          ( ( semiring_1_of_nat @ A @ ( suc @ N ) )
         != ( zero_zero @ A ) ) ) ).

% of_nat_neq_0
thf(fact_178_transfer__morphism__nat__int,axiom,
    nat_tr1645093318rphism @ int @ nat @ nat2 @ ( ord_less_eq @ int @ ( zero_zero @ int ) ) ).

% transfer_morphism_nat_int
thf(fact_179_transfer__nat__int__relations_I1_J,axiom,
    ! [X: int,Y: int] :
      ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X )
     => ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Y )
       => ( ( ( nat2 @ X )
            = ( nat2 @ Y ) )
          = ( X = Y ) ) ) ) ).

% transfer_nat_int_relations(1)
thf(fact_180_eq__nat__nat__iff,axiom,
    ! [Z: int,Z4: int] :
      ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z )
     => ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z4 )
       => ( ( ( nat2 @ Z )
            = ( nat2 @ Z4 ) )
          = ( Z = Z4 ) ) ) ) ).

% eq_nat_nat_iff
thf(fact_181_ex__nat,axiom,
    ( ( ^ [P2: nat > $o] :
        ? [X5: nat] : ( P2 @ X5 ) )
    = ( ^ [P3: nat > $o] :
        ? [X4: int] :
          ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X4 )
          & ( P3 @ ( nat2 @ X4 ) ) ) ) ) ).

% ex_nat
thf(fact_182_all__nat,axiom,
    ( ( ^ [P2: nat > $o] :
        ! [X5: nat] : ( P2 @ X5 ) )
    = ( ^ [P3: nat > $o] :
        ! [X4: int] :
          ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X4 )
         => ( P3 @ ( nat2 @ X4 ) ) ) ) ) ).

% all_nat
thf(fact_183_zero__le__imp__eq__int,axiom,
    ! [K: int] :
      ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ K )
     => ? [N2: nat] :
          ( K
          = ( semiring_1_of_nat @ int @ N2 ) ) ) ).

% zero_le_imp_eq_int
thf(fact_184_nonneg__int__cases,axiom,
    ! [K: int] :
      ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ K )
     => ~ ! [N2: nat] :
            ( K
           != ( semiring_1_of_nat @ int @ N2 ) ) ) ).

% nonneg_int_cases
thf(fact_185_nonneg__eq__int,axiom,
    ! [Z: int] :
      ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z )
     => ~ ! [M4: nat] :
            ( Z
           != ( semiring_1_of_nat @ int @ M4 ) ) ) ).

% nonneg_eq_int
thf(fact_186_Nat__Transfer_Otransfer__nat__int__function__closures_I9_J,axiom,
    ! [Z: nat] : ( ord_less_eq @ int @ ( zero_zero @ int ) @ ( semiring_1_of_nat @ int @ Z ) ) ).

% Nat_Transfer.transfer_nat_int_function_closures(9)
thf(fact_187_transfer__int__nat__quantifiers_I1_J,axiom,
    ! [P: int > $o] :
      ( ( ! [X4: int] :
            ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X4 )
           => ( P @ X4 ) ) )
      = ( ! [X4: nat] : ( P @ ( semiring_1_of_nat @ int @ X4 ) ) ) ) ).

% transfer_int_nat_quantifiers(1)
thf(fact_188_transfer__int__nat__quantifiers_I2_J,axiom,
    ! [P: int > $o] :
      ( ( ? [X4: int] :
            ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X4 )
            & ( P @ X4 ) ) )
      = ( ? [X4: nat] : ( P @ ( semiring_1_of_nat @ int @ X4 ) ) ) ) ).

% transfer_int_nat_quantifiers(2)
thf(fact_189_transfer__nat__int__relations_I3_J,axiom,
    ! [X: int,Y: int] :
      ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X )
     => ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Y )
       => ( ( ord_less_eq @ nat @ ( nat2 @ X ) @ ( nat2 @ Y ) )
          = ( ord_less_eq @ int @ X @ Y ) ) ) ) ).

% transfer_nat_int_relations(3)
thf(fact_190_nat__0__le,axiom,
    ! [Z: int] :
      ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z )
     => ( ( semiring_1_of_nat @ int @ ( nat2 @ Z ) )
        = Z ) ) ).

% nat_0_le
thf(fact_191_int__eq__iff,axiom,
    ! [M: nat,Z: int] :
      ( ( ( semiring_1_of_nat @ int @ M )
        = Z )
      = ( ( M
          = ( nat2 @ Z ) )
        & ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z ) ) ) ).

% int_eq_iff
thf(fact_192_le__zero__eq,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A @ ( type2 @ A ) )
     => ! [N: A] :
          ( ( ord_less_eq @ A @ N @ ( zero_zero @ A ) )
          = ( N
            = ( zero_zero @ A ) ) ) ) ).

% le_zero_eq
thf(fact_193_imp__le__cong,axiom,
    ! [X: int,X6: int,P: $o,P4: $o] :
      ( ( X = X6 )
     => ( ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X6 )
         => ( P = P4 ) )
       => ( ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X )
           => P )
          = ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X6 )
           => P4 ) ) ) ) ).

% imp_le_cong
thf(fact_194_conj__le__cong,axiom,
    ! [X: int,X6: int,P: $o,P4: $o] :
      ( ( X = X6 )
     => ( ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X6 )
         => ( P = P4 ) )
       => ( ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X )
            & P )
          = ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X6 )
            & P4 ) ) ) ) ).

% conj_le_cong
thf(fact_195_le0,axiom,
    ! [N: nat] : ( ord_less_eq @ nat @ ( zero_zero @ nat ) @ N ) ).

% le0
thf(fact_196_nat__0,axiom,
    ( ( nat2 @ ( zero_zero @ int ) )
    = ( zero_zero @ nat ) ) ).

% nat_0
thf(fact_197_nat__le__0,axiom,
    ! [Z: int] :
      ( ( ord_less_eq @ int @ Z @ ( zero_zero @ int ) )
     => ( ( nat2 @ Z )
        = ( zero_zero @ nat ) ) ) ).

% nat_le_0
thf(fact_198_nat__0__iff,axiom,
    ! [I: int] :
      ( ( ( nat2 @ I )
        = ( zero_zero @ nat ) )
      = ( ord_less_eq @ int @ I @ ( zero_zero @ int ) ) ) ).

% nat_0_iff
thf(fact_199_nat_Odistinct_I1_J,axiom,
    ! [X2: nat] :
      ( ( zero_zero @ nat )
     != ( suc @ X2 ) ) ).

% nat.distinct(1)
thf(fact_200_old_Onat_Odistinct_I2_J,axiom,
    ! [Nat3: nat] :
      ( ( suc @ Nat3 )
     != ( zero_zero @ nat ) ) ).

% old.nat.distinct(2)
thf(fact_201_old_Onat_Odistinct_I1_J,axiom,
    ! [Nat2: nat] :
      ( ( zero_zero @ nat )
     != ( suc @ Nat2 ) ) ).

% old.nat.distinct(1)
thf(fact_202_nat_OdiscI,axiom,
    ! [Nat: nat,X2: nat] :
      ( ( Nat
        = ( suc @ X2 ) )
     => ( Nat
       != ( zero_zero @ nat ) ) ) ).

% nat.discI
thf(fact_203_nat__induct,axiom,
    ! [P: nat > $o,N: nat] :
      ( ( P @ ( zero_zero @ nat ) )
     => ( ! [N2: nat] :
            ( ( P @ N2 )
           => ( P @ ( suc @ N2 ) ) )
       => ( P @ N ) ) ) ).

% nat_induct
thf(fact_204_diff__induct,axiom,
    ! [P: nat > nat > $o,M: nat,N: nat] :
      ( ! [X3: nat] : ( P @ X3 @ ( zero_zero @ nat ) )
     => ( ! [Y6: nat] : ( P @ ( zero_zero @ nat ) @ ( suc @ Y6 ) )
       => ( ! [X3: nat,Y6: nat] :
              ( ( P @ X3 @ Y6 )
             => ( P @ ( suc @ X3 ) @ ( suc @ Y6 ) ) )
         => ( P @ M @ N ) ) ) ) ).

% diff_induct
thf(fact_205_zero__induct,axiom,
    ! [P: nat > $o,K: nat] :
      ( ( P @ K )
     => ( ! [N2: nat] :
            ( ( P @ ( suc @ N2 ) )
           => ( P @ N2 ) )
       => ( P @ ( zero_zero @ nat ) ) ) ) ).

% zero_induct
thf(fact_206_Suc__neq__Zero,axiom,
    ! [M: nat] :
      ( ( suc @ M )
     != ( zero_zero @ nat ) ) ).

% Suc_neq_Zero
thf(fact_207_Zero__neq__Suc,axiom,
    ! [M: nat] :
      ( ( zero_zero @ nat )
     != ( suc @ M ) ) ).

% Zero_neq_Suc
thf(fact_208_Zero__not__Suc,axiom,
    ! [M: nat] :
      ( ( zero_zero @ nat )
     != ( suc @ M ) ) ).

% Zero_not_Suc
thf(fact_209_old_Onat_Oexhaust,axiom,
    ! [Y: nat] :
      ( ( Y
       != ( zero_zero @ nat ) )
     => ~ ! [Nat4: nat] :
            ( Y
           != ( suc @ Nat4 ) ) ) ).

% old.nat.exhaust
thf(fact_210_old_Onat_Oinducts,axiom,
    ! [P: nat > $o,Nat: nat] :
      ( ( P @ ( zero_zero @ nat ) )
     => ( ! [Nat4: nat] :
            ( ( P @ Nat4 )
           => ( P @ ( suc @ Nat4 ) ) )
       => ( P @ Nat ) ) ) ).

% old.nat.inducts
thf(fact_211_not0__implies__Suc,axiom,
    ! [N: nat] :
      ( ( N
       != ( zero_zero @ nat ) )
     => ? [M4: nat] :
          ( N
          = ( suc @ M4 ) ) ) ).

% not0_implies_Suc
thf(fact_212_dependent__nat__choice,axiom,
    ! [A: $tType,P: nat > A > $o,Q: nat > A > A > $o] :
      ( ? [X1: A] : ( P @ ( zero_zero @ nat ) @ X1 )
     => ( ! [X3: A,N2: nat] :
            ( ( P @ N2 @ X3 )
           => ? [Y3: A] :
                ( ( P @ ( suc @ N2 ) @ Y3 )
                & ( Q @ N2 @ X3 @ Y3 ) ) )
       => ? [F3: nat > A] :
          ! [N4: nat] :
            ( ( P @ N4 @ ( F3 @ N4 ) )
            & ( Q @ N4 @ ( F3 @ N4 ) @ ( F3 @ ( suc @ N4 ) ) ) ) ) ) ).

% dependent_nat_choice
thf(fact_213_exists__least__lemma,axiom,
    ! [P: nat > $o] :
      ( ~ ( P @ ( zero_zero @ nat ) )
     => ( ? [X1: nat] : ( P @ X1 )
       => ? [N2: nat] :
            ( ~ ( P @ N2 )
            & ( P @ ( suc @ N2 ) ) ) ) ) ).

% exists_least_lemma
thf(fact_214_le__0__eq,axiom,
    ! [N: nat] :
      ( ( ord_less_eq @ nat @ N @ ( zero_zero @ nat ) )
      = ( N
        = ( zero_zero @ nat ) ) ) ).

% le_0_eq
thf(fact_215_less__eq__nat_Osimps_I1_J,axiom,
    ! [N: nat] : ( ord_less_eq @ nat @ ( zero_zero @ nat ) @ N ) ).

% less_eq_nat.simps(1)
thf(fact_216_of__nat__aux_Osimps_I1_J,axiom,
    ! [A: $tType] :
      ( ( semiring_1 @ A @ ( type2 @ A ) )
     => ! [Inc: A > A,I: A] :
          ( ( semiri532925092at_aux @ A @ Inc @ ( zero_zero @ nat ) @ I )
          = I ) ) ).

% of_nat_aux.simps(1)
thf(fact_217_transfer__int__nat__numerals_I1_J,axiom,
    ( ( zero_zero @ int )
    = ( semiring_1_of_nat @ int @ ( zero_zero @ nat ) ) ) ).

% transfer_int_nat_numerals(1)
thf(fact_218_nat__eq__iff,axiom,
    ! [W: int,M: nat] :
      ( ( ( nat2 @ W )
        = M )
      = ( ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ W )
         => ( W
            = ( semiring_1_of_nat @ int @ M ) ) )
        & ( ~ ( ord_less_eq @ int @ ( zero_zero @ int ) @ W )
         => ( M
            = ( zero_zero @ nat ) ) ) ) ) ).

% nat_eq_iff
thf(fact_219_nat__eq__iff2,axiom,
    ! [M: nat,W: int] :
      ( ( M
        = ( nat2 @ W ) )
      = ( ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ W )
         => ( W
            = ( semiring_1_of_nat @ int @ M ) ) )
        & ( ~ ( ord_less_eq @ int @ ( zero_zero @ int ) @ W )
         => ( M
            = ( zero_zero @ nat ) ) ) ) ) ).

% nat_eq_iff2
thf(fact_220_zero__le,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A @ ( type2 @ A ) )
     => ! [X: A] : ( ord_less_eq @ A @ ( zero_zero @ A ) @ X ) ) ).

% zero_le
thf(fact_221_option_Osize__gen_I1_J,axiom,
    ! [A: $tType,X: A > nat] :
      ( ( size_option @ A @ X @ ( none @ A ) )
      = ( suc @ ( zero_zero @ nat ) ) ) ).

% option.size_gen(1)
thf(fact_222_LList2__Mirabelle__hamjzmohle_Ollength__LNil,axiom,
    ! [A: $tType] :
      ( ( lList21232602520length @ A @ ( coinductive_LNil @ A ) )
      = ( zero_zero @ nat ) ) ).

% LList2_Mirabelle_hamjzmohle.llength_LNil
thf(fact_223_option_Osize_I4_J,axiom,
    ! [A: $tType,X2: A] :
      ( ( size_size @ ( option @ A ) @ ( some @ A @ X2 ) )
      = ( suc @ ( zero_zero @ nat ) ) ) ).

% option.size(4)
thf(fact_224_option_Osize_I3_J,axiom,
    ! [A: $tType] :
      ( ( size_size @ ( option @ A ) @ ( none @ A ) )
      = ( suc @ ( zero_zero @ nat ) ) ) ).

% option.size(3)
thf(fact_225_option_Osize__neq,axiom,
    ! [A: $tType,X: option @ A] :
      ( ( size_size @ ( option @ A ) @ X )
     != ( zero_zero @ nat ) ) ).

% option.size_neq
thf(fact_226_LList2__Mirabelle__hamjzmohle_Oltake_Osimps_I1_J,axiom,
    ! [A: $tType,L: coinductive_llist @ A] :
      ( ( lList22119844313_ltake @ A @ L @ ( zero_zero @ nat ) )
      = ( coinductive_LNil @ A ) ) ).

% LList2_Mirabelle_hamjzmohle.ltake.simps(1)
thf(fact_227_list__decode_Ocases,axiom,
    ! [X: nat] :
      ( ( X
       != ( zero_zero @ nat ) )
     => ~ ! [N2: nat] :
            ( X
           != ( suc @ N2 ) ) ) ).

% list_decode.cases
thf(fact_228_le__numeral__extra_I3_J,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type2 @ A ) )
     => ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( zero_zero @ A ) ) ) ).

% le_numeral_extra(3)
thf(fact_229_int__eq__iff__numeral,axiom,
    ! [M: nat,V2: num] :
      ( ( ( semiring_1_of_nat @ int @ M )
        = ( numeral_numeral @ int @ V2 ) )
      = ( ( M
          = ( nat2 @ ( numeral_numeral @ int @ V2 ) ) )
        & ( ord_less_eq @ int @ ( zero_zero @ int ) @ ( numeral_numeral @ int @ V2 ) ) ) ) ).

% int_eq_iff_numeral
thf(fact_230_numeral__le__iff,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type2 @ A ) )
     => ! [M: num,N: num] :
          ( ( ord_less_eq @ A @ ( numeral_numeral @ A @ M ) @ ( numeral_numeral @ A @ N ) )
          = ( ord_less_eq @ num @ M @ N ) ) ) ).

% numeral_le_iff
thf(fact_231_of__nat__numeral,axiom,
    ! [A: $tType] :
      ( ( semiring_1 @ A @ ( type2 @ A ) )
     => ! [N: num] :
          ( ( semiring_1_of_nat @ A @ ( numeral_numeral @ nat @ N ) )
          = ( numeral_numeral @ A @ N ) ) ) ).

% of_nat_numeral
thf(fact_232_round__numeral,axiom,
    ! [A: $tType] :
      ( ( archim1727834104eiling @ A @ ( type2 @ A ) )
     => ! [N: num] :
          ( ( archimedean_round @ A @ ( numeral_numeral @ A @ N ) )
          = ( numeral_numeral @ int @ N ) ) ) ).

% round_numeral
thf(fact_233_not__numeral__le__zero,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type2 @ A ) )
     => ! [N: num] :
          ~ ( ord_less_eq @ A @ ( numeral_numeral @ A @ N ) @ ( zero_zero @ A ) ) ) ).

% not_numeral_le_zero
thf(fact_234_zero__le__numeral,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type2 @ A ) )
     => ! [N: num] : ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( numeral_numeral @ A @ N ) ) ) ).

% zero_le_numeral
thf(fact_235_option_Osize__gen_I2_J,axiom,
    ! [A: $tType,X: A > nat,X2: A] :
      ( ( size_option @ A @ X @ ( some @ A @ X2 ) )
      = ( plus_plus @ nat @ ( X @ X2 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).

% option.size_gen(2)
thf(fact_236_Nat__Transfer_Otransfer__nat__int__function__closures_I3_J,axiom,
    ! [X: int,Y: int] :
      ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X )
     => ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Y )
       => ( ord_less_eq @ int @ ( zero_zero @ int ) @ ( nat_tsub @ X @ Y ) ) ) ) ).

% Nat_Transfer.transfer_nat_int_function_closures(3)
thf(fact_237_add__le__cancel__left,axiom,
    ! [A: $tType] :
      ( ( ordere236663937imp_le @ A @ ( type2 @ A ) )
     => ! [C2: A,A2: A,B2: A] :
          ( ( ord_less_eq @ A @ ( plus_plus @ A @ C2 @ A2 ) @ ( plus_plus @ A @ C2 @ B2 ) )
          = ( ord_less_eq @ A @ A2 @ B2 ) ) ) ).

% add_le_cancel_left
thf(fact_238_add__le__cancel__right,axiom,
    ! [A: $tType] :
      ( ( ordere236663937imp_le @ A @ ( type2 @ A ) )
     => ! [A2: A,C2: A,B2: A] :
          ( ( ord_less_eq @ A @ ( plus_plus @ A @ A2 @ C2 ) @ ( plus_plus @ A @ B2 @ C2 ) )
          = ( ord_less_eq @ A @ A2 @ B2 ) ) ) ).

% add_le_cancel_right
thf(fact_239_Nat_Oadd__0__right,axiom,
    ! [M: nat] :
      ( ( plus_plus @ nat @ M @ ( zero_zero @ nat ) )
      = M ) ).

% Nat.add_0_right
thf(fact_240_add__is__0,axiom,
    ! [M: nat,N: nat] :
      ( ( ( plus_plus @ nat @ M @ N )
        = ( zero_zero @ nat ) )
      = ( ( M
          = ( zero_zero @ nat ) )
        & ( N
          = ( zero_zero @ nat ) ) ) ) ).

% add_is_0
thf(fact_241_add__Suc__right,axiom,
    ! [M: nat,N: nat] :
      ( ( plus_plus @ nat @ M @ ( suc @ N ) )
      = ( suc @ ( plus_plus @ nat @ M @ N ) ) ) ).

% add_Suc_right
thf(fact_242_nat__add__left__cancel__le,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ ( plus_plus @ nat @ K @ M ) @ ( plus_plus @ nat @ K @ N ) )
      = ( ord_less_eq @ nat @ M @ N ) ) ).

% nat_add_left_cancel_le
thf(fact_243_add__le__same__cancel1,axiom,
    ! [A: $tType] :
      ( ( ordere516151231imp_le @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A] :
          ( ( ord_less_eq @ A @ ( plus_plus @ A @ B2 @ A2 ) @ B2 )
          = ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) ) ) ) ).

% add_le_same_cancel1
thf(fact_244_add__le__same__cancel2,axiom,
    ! [A: $tType] :
      ( ( ordere516151231imp_le @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ ( plus_plus @ A @ A2 @ B2 ) @ B2 )
          = ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) ) ) ) ).

% add_le_same_cancel2
thf(fact_245_le__add__same__cancel1,axiom,
    ! [A: $tType] :
      ( ( ordere516151231imp_le @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ A2 @ ( plus_plus @ A @ A2 @ B2 ) )
          = ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) ) ) ).

% le_add_same_cancel1
thf(fact_246_le__add__same__cancel2,axiom,
    ! [A: $tType] :
      ( ( ordere516151231imp_le @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ A2 @ ( plus_plus @ A @ B2 @ A2 ) )
          = ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) ) ) ).

% le_add_same_cancel2
thf(fact_247_double__add__le__zero__iff__single__add__le__zero,axiom,
    ! [A: $tType] :
      ( ( linord219039673up_add @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ( ( ord_less_eq @ A @ ( plus_plus @ A @ A2 @ A2 ) @ ( zero_zero @ A ) )
          = ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) ) ) ) ).

% double_add_le_zero_iff_single_add_le_zero
thf(fact_248_zero__le__double__add__iff__zero__le__single__add,axiom,
    ! [A: $tType] :
      ( ( linord219039673up_add @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( plus_plus @ A @ A2 @ A2 ) )
          = ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 ) ) ) ).

% zero_le_double_add_iff_zero_le_single_add
thf(fact_249_of__nat__add,axiom,
    ! [A: $tType] :
      ( ( semiring_1 @ A @ ( type2 @ A ) )
     => ! [M: nat,N: nat] :
          ( ( semiring_1_of_nat @ A @ ( plus_plus @ nat @ M @ N ) )
          = ( plus_plus @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) ) ) ) ).

% of_nat_add
thf(fact_250_nat__numeral,axiom,
    ! [K: num] :
      ( ( nat2 @ ( numeral_numeral @ int @ K ) )
      = ( numeral_numeral @ nat @ K ) ) ).

% nat_numeral
thf(fact_251_add__is__1,axiom,
    ! [M: nat,N: nat] :
      ( ( ( plus_plus @ nat @ M @ N )
        = ( suc @ ( zero_zero @ nat ) ) )
      = ( ( ( M
            = ( suc @ ( zero_zero @ nat ) ) )
          & ( N
            = ( zero_zero @ nat ) ) )
        | ( ( M
            = ( zero_zero @ nat ) )
          & ( N
            = ( suc @ ( zero_zero @ nat ) ) ) ) ) ) ).

% add_is_1
thf(fact_252_one__is__add,axiom,
    ! [M: nat,N: nat] :
      ( ( ( suc @ ( zero_zero @ nat ) )
        = ( plus_plus @ nat @ M @ N ) )
      = ( ( ( M
            = ( suc @ ( zero_zero @ nat ) ) )
          & ( N
            = ( zero_zero @ nat ) ) )
        | ( ( M
            = ( zero_zero @ nat ) )
          & ( N
            = ( suc @ ( zero_zero @ nat ) ) ) ) ) ) ).

% one_is_add

%----Type constructors (37)
thf(tcon_fun___Complete__Lattices_Ocomplete__lattice,axiom,
    ! [A6: $tType,A7: $tType] :
      ( ( comple187826305attice @ A7 @ ( type2 @ A7 ) )
     => ( comple187826305attice @ ( A6 > A7 ) @ ( type2 @ ( A6 > A7 ) ) ) ) ).

thf(tcon_fun___Orderings_Opreorder,axiom,
    ! [A6: $tType,A7: $tType] :
      ( ( preorder @ A7 @ ( type2 @ A7 ) )
     => ( preorder @ ( A6 > A7 ) @ ( type2 @ ( A6 > A7 ) ) ) ) ).

thf(tcon_fun___Orderings_Oorder,axiom,
    ! [A6: $tType,A7: $tType] :
      ( ( order @ A7 @ ( type2 @ A7 ) )
     => ( order @ ( A6 > A7 ) @ ( type2 @ ( A6 > A7 ) ) ) ) ).

thf(tcon_fun___Orderings_Oord,axiom,
    ! [A6: $tType,A7: $tType] :
      ( ( ord @ A7 @ ( type2 @ A7 ) )
     => ( ord @ ( A6 > A7 ) @ ( type2 @ ( A6 > A7 ) ) ) ) ).

thf(tcon_Int_Oint___Groups_Oordered__ab__semigroup__monoid__add__imp__le,axiom,
    ordere516151231imp_le @ int @ ( type2 @ int ) ).

thf(tcon_Int_Oint___Groups_Oordered__ab__semigroup__add__imp__le,axiom,
    ordere236663937imp_le @ int @ ( type2 @ int ) ).

thf(tcon_Int_Oint___Groups_Olinordered__ab__group__add,axiom,
    linord219039673up_add @ int @ ( type2 @ int ) ).

thf(tcon_Int_Oint___Rings_Olinordered__semidom,axiom,
    linordered_semidom @ int @ ( type2 @ int ) ).

thf(tcon_Int_Oint___Nat_Osemiring__char__0,axiom,
    semiring_char_0 @ int @ ( type2 @ int ) ).

thf(tcon_Int_Oint___Orderings_Opreorder_1,axiom,
    preorder @ int @ ( type2 @ int ) ).

thf(tcon_Int_Oint___Orderings_Olinorder,axiom,
    linorder @ int @ ( type2 @ int ) ).

thf(tcon_Int_Oint___Rings_Osemiring__1,axiom,
    semiring_1 @ int @ ( type2 @ int ) ).

thf(tcon_Int_Oint___Orderings_Oorder_2,axiom,
    order @ int @ ( type2 @ int ) ).

thf(tcon_Int_Oint___Orderings_Oord_3,axiom,
    ord @ int @ ( type2 @ int ) ).

thf(tcon_Nat_Onat___Groups_Oordered__ab__semigroup__monoid__add__imp__le_4,axiom,
    ordere516151231imp_le @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Groups_Oordered__ab__semigroup__add__imp__le_5,axiom,
    ordere236663937imp_le @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Groups_Ocanonically__ordered__monoid__add,axiom,
    canoni770627133id_add @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Rings_Olinordered__semidom_6,axiom,
    linordered_semidom @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Nat_Osemiring__char__0_7,axiom,
    semiring_char_0 @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Opreorder_8,axiom,
    preorder @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Olinorder_9,axiom,
    linorder @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Rings_Osemiring__1_10,axiom,
    semiring_1 @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Oorder_11,axiom,
    order @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Oord_12,axiom,
    ord @ nat @ ( type2 @ nat ) ).

thf(tcon_Num_Onum___Orderings_Opreorder_13,axiom,
    preorder @ num @ ( type2 @ num ) ).

thf(tcon_Num_Onum___Orderings_Olinorder_14,axiom,
    linorder @ num @ ( type2 @ num ) ).

thf(tcon_Num_Onum___Orderings_Oorder_15,axiom,
    order @ num @ ( type2 @ num ) ).

thf(tcon_Num_Onum___Orderings_Oord_16,axiom,
    ord @ num @ ( type2 @ num ) ).

thf(tcon_Set_Oset___Complete__Lattices_Ocomplete__lattice_17,axiom,
    ! [A6: $tType] : ( comple187826305attice @ ( set @ A6 ) @ ( type2 @ ( set @ A6 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Opreorder_18,axiom,
    ! [A6: $tType] : ( preorder @ ( set @ A6 ) @ ( type2 @ ( set @ A6 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Oorder_19,axiom,
    ! [A6: $tType] : ( order @ ( set @ A6 ) @ ( type2 @ ( set @ A6 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Oord_20,axiom,
    ! [A6: $tType] : ( ord @ ( set @ A6 ) @ ( type2 @ ( set @ A6 ) ) ) ).

thf(tcon_HOL_Obool___Complete__Lattices_Ocomplete__lattice_21,axiom,
    comple187826305attice @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Opreorder_22,axiom,
    preorder @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Olinorder_23,axiom,
    linorder @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Oorder_24,axiom,
    order @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Oord_25,axiom,
    ord @ $o @ ( type2 @ $o ) ).

%----Helper facts (3)
thf(help_If_3_1_T,axiom,
    ! [P: $o] :
      ( ( P = $true )
      | ( P = $false ) ) ).

thf(help_If_2_1_T,axiom,
    ! [A: $tType,X: A,Y: A] :
      ( ( if @ A @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_T,axiom,
    ! [A: $tType,X: A,Y: A] :
      ( ( if @ A @ $true @ X @ Y )
      = X ) ).

%----Conjectures (1)
thf(conj_0,conjecture,
    q ).

%------------------------------------------------------------------------------